#pragma once

class ObjectProperty
{
private:

  bool _selectable;
  bool _moveable;
  bool _attackable;

  float _basicAttackPower;
  float _basicAttackRange;
  float _basicMissingChance;

  float _basicDefence;
  float _basicAvoidingChance;

  float _radius;

  float _speed;

public:
  ObjectProperty (float radius, bool selectable, bool moveable, bool attackable,
                  float basicAttackPower, float basicAttackRange, float basicMissingChance,
                  float basicDefence, float basicAvoidingChance, float speed)
  {
    
    _selectable = selectable;
    _moveable = moveable;
    _attackable = attackable;

    _basicAttackPower = basicAttackPower;
    _basicAttackRange = basicAttackRange;
    _basicMissingChance = basicMissingChance;
    
    _basicDefence = basicDefence;
    _basicAvoidingChance = basicAvoidingChance;

    _speed = speed;

    _radius = radius;
  }


  bool selectable () const { return _selectable; }
  bool moveable () const { return _moveable; }
  bool attackable () const { return _attackable; }
  
  float basic_attack_power () const { return _basicAttackPower; }
  float basic_attack_range () const { return _basicAttackRange; }
  float basic_missing_chance () const { return _basicMissingChance; }
  
  float basic_defence () const { return _basicDefence; }
  float basic_avoiding_chance () const { return _basicAvoidingChance; }
  
  float radius () const { return _radius; }
  
  float speed () const {return _speed; }
};
